|
Emplacement du menu |
---|
Web Tools → Git |
Ateliers |
WebTools |
Raccourci par défaut |
Aucun |
Introduit dans la version |
0.17 |
Voir aussi |
Aucun |
Cette commande permet de gérer le document actif via GIT. GIT est un puissant système de révisions de versions, peut gérer des versions différentes de fichiers et garder une trace des changements.
Git est un outil complexe, considérez d'en apprendre les bases avant d'utiliser cet outil, afin d'éviter des opérations malavisées qui pourraient causer des pertes de données. Une littérature abondante sur Git est disponible et facile à trouver sur Internet.
Prérequis: pour pouvoir utiliser cette commande, le paquet gitpython doit être installé sur votre système. Sur la plupart des distributions Linux, gitpython est disponible à partir des dépôts de logiciels standards sous le nom gitpython ou python-git.
git log
.git diff
.
fcinfo
pour la différence textuelle.
Le format de fichier FCStd de FreeCAD est un format binaire au format zip, pour lequel Git ne peut pas produire de diffs corrects. Cela signifie que vous ne pouvez pas voir ce qui a changé entre les versions et que chaque nouvelle version stockée dans le référentiel Git est une copie complète du fichier.
Bien que le second problème n’ait actuellement pas de solution, le premier peut être résolu avec un petit outil disponible dans le code source de FreeCAD, appelé fcinfo . On peut dire à Git d’utiliser l’utilitaire fcinfo pour imprimer un rapport convivial pour un fichier FCStd et que, s’il est invité à produire un diff entre deux fichiers FCStd, il produira un diff entre les deux rapports fcinfo. Veuillez noter qu'il ne s'agit que d'un retour visuel. Une copie complète du fichier sera toujours stockée en interne.
Exemple de différences générées avec fcinfo:
diff --git a/testhouse.FcStd b/testhouse.FcStd
index 08077b6..985b1d8 100644
--- a/testhouse.FcStd
+++ b/testhouse.FcStd
@@ -1,26 +1,25 @@
-Document: /tmp/43un09_testhouse.FcStd (442K)
- SHA1: 67c1985a45d93cba57d5bf44490897aba460100d
+Document: /tmp/zfXoDd_testhouse.FcStd (370K)
+ SHA1: db1cb5fca18af7bfdca849028f40550df4d845cb
Comment : This is a test house to showcase FreeCAD's BIM worflow and IFC export capabilities
Company : uncreated.net
CreatedBy : Yorik van Havre
CreationDate : Fri May 9 12:05:54 2014
FileVersion : 1
Id :
- Label : testhouse
- LastModifiedBy : Yorik van Havre
- LastModifiedDate : 2016-06-28T17:05:57-03:00
+ Label : testhouse2
+ LastModifiedBy : Yorik van Havre
+ LastModifiedDate : Sat Sep 13 20:46:36 2014
+
License : CC-BY 3.0
LicenseURL : http://creativecommons.org/licenses/by/3.0/
- ProgramVersion : 0.17R7800 (Git)
- TipName :
+ ProgramVersion : 0.15R3989 (Git)
Uid : 67e62d8a-6674-4358-92fe-615443be887a
- Objects: (231)
+ Objects: (221)
Annotation : Drawing::FeatureViewAnnotation
Annotation001 : Drawing::FeatureViewAnnotation
Annotation002 : Drawing::FeatureViewAnnotation
Annotation003 : Drawing::FeatureViewAnnotation
- Annotation004 : Drawing::FeatureViewAnnotation
- Annotation005 : Drawing::FeatureViewAnnotation
Array : Part::FeaturePython (9K)
Box : Part::Box (2K)
Building : App::DocumentObjectGroupPython
@@ -110,7 +109,7 @@ Document: /tmp/43un09_testhouse.FcStd (442K)
Floor : App::DocumentObjectGroupPython
Floor001 : App::DocumentObjectGroupPython
Floor002 : App::DocumentObjectGroupPython
- Frame : Part::FeaturePython (89K)
Chaque fichier FreeCAD contient un numéro de somme de contrôle SHA1, qui change à chaque sauvegarde du fichier, même si aucun contenu n'a été modifié. Donc, fcinfo imprimera toujours quelque chose, peu importe les changements de contenu.
Pour activer l'utilisation de fcinfo (Linux et Mac uniquement - TODO: ajouter des instructions Windows)
Voici les étapes pour permettre l'utilisation de l'outil fcinfo sur la base d'un dépôt.
fcinfo
est inclus dans le paquet freecad
, ici le patch.fcinfo
est disponible à /usr/bin/fcinfo
..gitattributes
dans votre répertoire Git et ajoutez-y la ligne suivante :*.FCStd diff=fcinfo
.gitconfig
dans votre répertoire personnel :[diff "fcinfo"]
textconv = /path/to/fcinfo
--gui
) en utilisant cette approche :[diff "fcinfo"]
textconv = sh -c '/path/to/fcinfo --gui "$0"'XD
Remarquez que si vous travaillez dans un projet collaboratif, vous pouvez vouloir inclure l'outil fcinfo dans votre dépôt. Dans ce cas, le chemin est relatif au répertoire racine de votre dépôt Git.
Si vous travaillez sur de nombreux projets qui ont besoin de l'outil fcinfo, vous pouvez l'activer globalement pour votre utilisateur.
$HOME/.config/git/attributes
et ajoutez-y la ligne suivante :*.FCStd diff=fcinfo
$HOME/.config/git/config
:
git config --global diff.fcinfo.textconv "/path/to/fcinfo"
.freecad
peuvent utiliser {{{1}}}
puisqu'il est déjà installé sur leur système.[diff "fcinfo"]
textconv = /path/to/fcinfo
Remarquez que toute configuration effectuée dans un dépôt est prioritaire par rapport aux configurations globales.